//
//  EnergyData.h
//  WORM_AL_PT
//
//  Created by Snir Gazit on 8/9/11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#ifndef WORM_AL_PT_EnergyData_h
#define WORM_AL_PT_EnergyData_h
#include "HelpLibs/def.h"
struct EnergyData {
	// Total energy
	double energy_;
	// Green Energy
	double energyV_;
	// Force Energy
	double energyF_;
	EnergyData();
	void update(EnergyData ED);
	void zero();
	EnergyData mul(double c);
	EnergyData diff(EnergyData ED);
	double getEnergy() const;
	double getEnergyV() const;
	double getEnergyF() const;
	void setEnergy(double energy);
	void setEnergyV(double energy);
	void setEnergyF(double energy);
	void calcEnergy(double constV, double constF);
	void swapData(EnergyData &ED);
};

struct WLEnergyData: EnergyData {
	double energyK_;
	WLEnergyData();
	double getEnergyK() const;
	void setEnergyK(double energy);
	void updateEnergyK(double energy);
	void swapData(WLEnergyData &ED);
	void setEnergyP(EnergyData &ED);
};

#endif
